package April.april29;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;

/*
定义集合类，泛型String
要求向集合中添加Integer类型

反射方式 因为java中的泛型是为泛型，编译后的class文件没有泛型的约束：这也称之为泛型的擦出
通过class文件对象，调用add方法

对反射方法是否理解
 */
public class ReflectTest {
    public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        ArrayList<String>  arry = new ArrayList<String>();
        arry.add("a");
//        反射方式获取集合ArrayList类中的class文件对象
        Class c = arry.getClass();
//        获取文件中的方法add
        Method method = c.getMethod("add",Object.class);
//        使用invoke运行ArrayList方法add
        method.invoke(arry,15);
        method.invoke(arry,150);
        method.invoke(arry,1500);
        method.invoke(arry,15000);
        System.out.println(arry);
    }
}
